Jx.declare('Jx.Mixins', {

	$singleton: true,

	onConstruct: function(){

		this.$super();

	}


});

Jx.Class.__callback_ApplyRequiredMixin = function(name, value, obj){

	if (obj.hasOwnProperty(name) && Jx.isString(value) && value){

		this.mixins[name] = value;

		this.requires.push(value);

	}

}

Jx.Class.setProcessor('definition', 'mixins', function(struct, value){

	struct.mixins = {};

	//-- apply required
	if (Jx.isObject(value)){

		Jx.each(value, this.__callback_ApplyRequiredMixin, struct);

	}

	//-- apply required mixin class
	this.required.push('Jx.Mixins');

}, 'requires');

Jx.Class.setProcessor('pre', 'mixins', function(struct, value){



}, 'accessors');
